package de.tmahr.android;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.TextView;
import de.tmahr.android.animation.Diagramm;
import de.tmahr.android.animation.RenderView;
import de.tmahr.android.animation.Diagramm.Abtastung;
import de.tmahr.android.logger.BufferedTextViewLogger;
import de.tmahr.android.logger.Logger;

/**
 * Dieser Test simuliert einen Sensor durch Berührungsereignisse. Die x-Position
 * der Berührung wird als Abtastwert interprertiert und in einem
 * Zeitverlaufsdiagramm @see de.tmahr.android.animation.Diagramm dargestellt.
 */
public class DiagrammTest extends Activity implements OnTouchListener
{
	private TextView logView;
	private RenderView renderView;
	private static Logger logger;
	private Diagramm diagramm;

	@Override
	public void onCreate(Bundle b)
	{
		super.onCreate(b);
		setTitle(DiagrammTest.class.getSimpleName());
		setContentView(R.layout.diagrammtest);

		logView = (TextView) findViewById(R.id.logView);
		logView.setText(DiagrammTest.class.getSimpleName());

		logger = new BufferedTextViewLogger(DiagrammTest.class.getSimpleName(),
				logView);
		logger.log("Klick mich\n");

		renderView = (RenderView) findViewById(R.id.renderView);
		renderView.setLogger(logger);

		diagramm = new Diagramm(logger,4000);
		renderView.setSimulation(diagramm);

		renderView.setOnTouchListener(this);
	}

	@Override
	protected void onPause()
	{
		super.onPause();
		renderView.pause();
	}

	@Override
	protected void onResume()
	{
		super.onResume();
		renderView.resume();
	}

	@Override
	public boolean onTouch(View v, MotionEvent event)
	{
		if (event.getAction() == MotionEvent.ACTION_UP)
		{
			diagramm.fuegeAbtastwertHinzu(new Abtastung(event.getEventTime(),
					event.getX()));
		}

		return true;
	}
}
